查看原文
其他

从发端到燎原之势,我看中国数据库39年

2017-08-05 林易 DBAplus社群



作者:林易误打误撞进入云计算圈的自媒体人,曾经采访过马云,王兴,王石等一众商业大佬,擅长撰写各种商业观察,行业观点,爱好无线电,互联网技术以及乐高。


数据库,将计算机科学和易于人类理解认知的数据管理方式完美地衔接在了一起,从上个世纪50年代开始,就逐渐影响并改变了世界。但在中国,数据库是怎样发端、成长并演变成今天的燎原之势,似乎从未有人进行过系统的梳理。一个偶然的机会,笔者执笔写下了这篇小文,资料有限,未尽之处,敬请谅解。

 

诞生于恢复高考之后

 

1978年,恢复高考以后的第一批学生,离开他们工作的农场、工厂,乃至西双版纳的热带森林,重新捡起书本,走进了大学校园。


迎接他们的老师萨师煊在黑板上写下了“数据库”三个字,这群刚刚走进校园的年轻人,望着手上油印的讲义,似乎还很难明白这是一个怎样的产物。不光是这群年轻人,彼时的中国大陆,听说过这个名词的人,也不过是极少数顶尖的计算机科学家。


中国数据库开拓者—萨师煊老师


国际上,上个世纪50、60年代,随着信息技术的发展,60年代伴随着登月工程等大型项目而生的数据库,已经从一门新兴科学,走入了国计民生领域。1961年,美国通用公司研发的第一个数据库系统DBMS诞生。1976年霍尼韦尔公司(Honeywell)开发了第一个商用关系数据库系统:Multics Relational Data Store。


就在萨师煊全面开始介绍数据库的前一年,1978年,美国的Ellison在为中央情报局做一个数据项目的时候,敏锐地发现关系型数据库的商机。几个月后,Oracle 1.0 诞生了,这个看起来只不过是个数据库玩具的产物,当时除了完成简单关系查询不能做任何事情,就是这样一个“玩具”,让Ellison从此踏进了信息管理这个巨大的蓝海产业,并在短短十几年间,成长为世界级的巨人。

 

1982年,萨师煊起草了国内第一个计算机专业本科“数据库系统概论”课程的教学大纲。中国数据库的这第一批星星之火,现在大多数人已经无法通过公开渠道寻找到,但是在萨师煊的线上纪念馆里,依然会看到一些名字:王珊《数据库系统概论》作者,国防科技大学计算机学院教授阳国贵等一串国内学界泰斗,由他们编写的教材,如今依然是学习数据库的同学必看的书籍之一。



这批中国数据库的第一代学生,走入社会已是80年代初,他们将数据库广泛带入了学校、学院以及科研机构,进而带动了整个八九十年代初的中国数据库行业在国防、军工等领域的应用。


今天已经无从考证,但我们可以想象,中国第一枚洲际导弹、中国第一代超级计算机、中国第一个正负电子对撞机、国产歼击机,甚至国产大型驱逐舰,在八十年突飞猛进的国家科技成果进步中一定有第一代中国数据库人的身影。


萨师煊是名门之后,家族名人包括民国海军司令萨镇冰等。但其一生致力于教学,对学生亲近可爱,虽然担任了数据库领域诸多职务,然而据弟子评价,老师身无长物,生活简朴。2010年7月11日凌晨,萨师煊在北京的医院里悄无声息的去世了。与大多数中国老科学家一样,今天的年轻人已经只能在搜索引擎上找到关于他的只言片语,但由他引入中国的数据库行业,却星火燎原,成为时代脉搏的纪录者。

路漫漫其修远兮,吾将上下而求索。——屈原《离骚》


Oracle江湖


1989年某一天,台湾人冯星君兴奋不已,数月前Oracle总部决定进军中国,冯星君带着10万美金的启动资金来到中国。就在此时,他惊讶地发现中国最有价值的中文词汇:“甲骨文”居然尚未注册,商业嗅觉敏锐的他天才般地决定将Oracle的中文名称,注册为甲骨文。


这个将中国历史上最古老的文字与最先进的数据库科技连接在一起的商业创意,后来成为了无数的商业教材反复讨论的品牌案例。从此,甲骨文这三个字,就在中国大陆上生根发芽,几乎在同一时期,中国出现了两个对于数据库强需求的行业。


上个世纪80年代末,中国的经济体量开始剧增,改革开放的脚步日益加深,信息流与资金流以几何级的速度增长:1978年,中国电话总用户数为214万户;2003年,中国电话数达到了22562万。而银行的业务也开始变得越来越复杂,各项业务开始迫切的需要新的工具。


当时的中关村盗版泛滥,买一套Oracle软件只需要2500元人民币;在美国,一套Oracle DOS要卖1700美元。冯星君说服了Oracle总部,准许他在中国将一套Oracle DOS只卖500美元,有培训、有服务、有手册,价钱和盗版一样,只用3个月时间,Oracle就卖出了5000套。


冯星君也具有当年的商业英雄的一切特征,充满了草莽气息。冯星君曾经将自己的家族企业发展成了Oracle在中国最大的代理商。而在被解职以后,传闻曾经派打手冲击Oracle会场,甚至差点被不明黑社会的人暗杀,这些充满了想象意味的场面,构成了那个特殊年代的商业江湖。

每一次冯星君的车一启动,就有一辆车尾随其后跟踪。冯星君开始注意这辆可疑的车,大概观察了一个星期,冯星君觉察出不对劲,就报了警,将这辆车扣了。由于没有造成任何伤害,也没构成犯罪事实,再加上不属于中国内地的管辖区域,于是警方将此案移交国家公安部门处理,最后将疑犯驱逐出境。


原来,跟踪冯星君的是台湾的黑社会势力,已经在内地潜伏了半个月之久,准备暗杀冯星君,但一直没有找到机会下手。


——摘自《IT时代周刊》

 

但无论如何,Oracle就这样在中国站住了脚,而真正让Oracle一统江湖的是“97工程”。当时,电信行业的业务量以平均每年45~50%的速度递增,而计费方式是脱机读带,人工整理,长途,国际业务甚至需要2~3个月才能结算出来,引入先进的数据库,并搭建起一套完整的服务系统,就成为了迫切的任务。


1995年5月,邮电部电信总局提出开发和建设“市内电话业务计算机综合管理系统”,即“九七工程”,并于同年7月下发了一系列的技术和业务规范,要求全国县以上的邮电局在1997年底前实施“九七工程”。“九七工程”共分为九个子系统,其中,营业受理、配线配号、定单管理、机线资源、综合管理与查询属于基本子系统,112、114、计费、号簿子系统与基本子系统完全实现数据共享。

 

“97工程”的7大系统

 

1997年,Oracle顺利地拿下东三省邮电管理局5期工程的大单,也给了Informix(英孚美软件公司)、SyBase(塞贝斯)、CA、Digital(DEC电脑有限公司)等业界几大厂商沉重的打击。


而中国的第一代DBA就在“97工程”中崛起,这批中国第一代DBA,其中绝大多数都已经是中国电信行业的元老级人物:多已成为省市一级的总工程师,甚至有的已经离开电信领域,步入仕途。据笔者统计,其中职务最高者已经官居副部序列,更多的人则已经财务自由,开始了自己人生的另外一段旅途。


中国数据库的行业格局就在这一时期形成了:金融行业用IBM DB2数据库、Informix数据库,在电信行业,则是Oracle的天下。同时,一批围绕Oracle生态成长的企业也逐步壮大。这也是Oracle数据库的黄金年代,就在这一年冬天,瑞典下了很大一场雪,大雪以后,独立的商业公司MySQL AB在瑞典的中部城市Uppsala成立了。


而早在公司成立之前的1995年,1995年5月23日,MySQL的第一个内部版本就开始发行了。有趣的是,第一个MySQL正式版恰巧只能运行在Sun Solaris上,仿佛昭示了它日后被Sun收购的命运。而MySQL之父Monty没有加入Sun,而是离职创立了Monty Program AB,接过MySQL的代码继续开发新的分支—MariaDB,并再续传奇的故事,我们将在后面继续讲述。


MySQL演进图

 

此时此刻的中国,世纪之交,也正在变革前夜。1999年,阿里巴巴诞生,1999年,腾讯诞生,到1999年6月30日,国内上网用户数已超过400万。


旧的黄金时代仍在延续,然而新的故事已经来临。

 

互联网传奇


从1999年开始,各个IT社区开始兴起,一些数据库的同行开始走出封闭的公司,在社区里活跃起来,更多数据库从业者获取知识的形式,也从产品文档,手册,变成了社区。“当时国内的整个技术社区里面大家能得到的第一手的资料其实还比较少,所以就有比较强的技术人员会去看英文的文档,国外的网站,然后回去做做实验,然后去社区里分享,帮助别人解决一些问题,盖国强等大牛就是这样声名鹊起的。”老一代DBA童家旺谈到当年自己混迹ITPUB的经历时说道。


那是DBA们的田园牧歌时代,当时的DBA圈子并不大,几乎都聚集在北京,社区里有人振臂一呼,线下撸串,响应者众多。大家一边撸串,一边把自己遇到的问题跟大家交流。而这一时期,也是各个互联网公司开始崛起的时期,对于数据库的需求量变得越来越强烈。


彼时在市场上,有三家公司的DBA被公认为行业大牛,一是eBay,二是淘宝,三是当年初创的支付宝。楼方鑫,冯大辉都是当年支付宝数据库的代表人物,楼方鑫在2005年曾经开发Oracle的灾难恢复工具AUL,十几年过去了仍然经常接到求助邮件。而冯大辉参与编辑两本 Oracle 的技术图书: 《Oracle数据库性能优化》、《Oracle数据库DBA专题技术精粹》在数据库领域有着广泛的影响力。而eBay,则以现在已经去了美国的eaglefan、玉面飞龙、yong huang黄勇和还留在唯品会的诸超等为代表。


Oracle数据库的一个致命缺点开始暴露出来:贵。不仅Oracle软件贵,要维持Oracle数据库+IBM小型机+EMC的开支也相当庞大,另外对于管理员的能力要求,也非常的高。


不仅如此,“第一是Oracle作为商业产品,本身也有性能的上限;第二是黑盒子,对于没碰到过的场景,无论再怎么努力,也是无法预测可能出现的问题的。”当时的淘宝数据库大神余锋告诉记者。


中国的互联网公司大部分都草莽出身,对于性价比极为看中,而这个时候,美国的雅虎公司开始率先使用MySQL数据库,一度在世界上有数以千计的服务器都是用MySQL数据库。当时雅虎的光环,远高于今天的谷歌、FB,可以说今天中国所有互联网公司的架构,都可以在雅虎找到源头,在雅虎的示范效应下,很快中国的互联网公司就开始自己的MySQL之路。


阿里巴巴曾经被称为Oracle的“明星客户“,”黄埔军校“诞生了冯春培、陈吉平和汪海等众多Oracle大牛,他们开奔驰的时候笔者连自行车都还买不起。但随着淘宝、支付宝和阿里巴巴B2B的注册用户数激增,用户产生的数据也越来越多,即使采用冷热隔离的方式也解决不了大容量数据且大并发的难题,淘宝启用了全亚洲最大的Oracle RAC集群,阿里巴巴B2B中文站的数据量也因数据量大和业务要求,每天早上08:00—09:30之间CPU保持98%的使用率,LOAD也超高,即使更换存储设备不久也会再次出现这样的状况。


使用开源的MySQL,跟商业产品Oracle重要区别在于,开源软件只有基本一个框架,虽然已经有了成熟的社区,但是产品本身需要自己去打磨,出了问题没有厂商技术支持,能不能支撑起阿里内部的数据库需求,在当时看来,并不那么确定。

2009年底,当时负责淘宝技术预算的刘振飞向王坚汇报,提出淘宝“2010年不会购买IBM小型机”,没想到被王坚挑战:“既然2010年可以不买小型机了,为什么还要给自己留后路以后还可能购买呢?你要在给董事会看的PPT上明确写一句:淘宝2010年起不再购买小型机了。”


刘振飞只好“攒出”一条去IOE的技术路线:“低成本、线性可控、去中心化(分布式):去IBM,PC Sever替代小型机;去Oracle,用MySQL替代;去EMC,用中低端存储”。他最后以惊叹号结尾,粗体写上一句:“淘宝2010年起不再购买小型机了!”


——摘自阿里巴巴内刊《阿里人杂志》

 

很难想象,在之后的爆发式增长中,包括以2014、15、16年双十一为代表的支付峰值,下单峰值,如果没有阿里自研的MySQL分支,将会发生什么样的状况。而MySQL的开源特性,也为其取代Oracle数据库提供了良好的基础: MySQL实际上在64位硬件出来以后,几个星期就出了64位的软件平台。固态存储技术出来了以后,几个月以后FB就开源了固态存储的缓存插件。


然而,开源数据库代表的是一种新的模式,但不是说开源数据库就应该完全免费,也是可以走商业服务路线的。所以,MySQL在国内的互联网公司逐步开始取代Oracle的江湖地位,成为诸多中国互联网企业的首选。新浪的杨海潮,去哪儿的周彥伟,搜狐的叶金荣等也是在此波浪潮中成长起了一批MySQL领军人物,另外,腾讯、百度、网易、小米、人人网、京东等诸多企业也都是MySQL的用户与开源贡献者。京东金融有个妙趣横生的MySQL 大牛刘启荣曾经跟笔者开过玩笑说:搞得MySQL,方为仌。也暗示着如今MySQL在互联网公司的地位。

 

在阿里去O的大背景下,一拨人转型成为了MySQL方面的资深专家:如张瑞、何云飞等;另一部分人则在双创大潮中转型成为了创业者,其中包括李春、金官丁、楼方鑫、冯大辉,还有陈吉平等,其中不乏融资千万乃至数亿的成功创业者。(如果诸位看官有兴趣,下一篇我们可以来写一篇DBA创业传奇,据笔者在身边的观察,不得不说DBA这个职业创业成功的概率远高于其他职业)。


今天阿里知名的MySQL数据库专家丁奇、何登成等也都是从百度、网易等各大互联网公司中成长起来的,当然也有阿里土生土长的彭立勋、翟卫祥。为了保证双11,他们自行维护了一个MySQL分支,叫AliSQL。从叶金荣老师评测中看到,在通用基准测试场景下,AliSQL版本比MySQL官方版本有着70%的性能提升。在2016年AliSQL宣布开源,声称在秒杀场景下,性能提升100倍。


中国互联网中的开源数据库大军, 除了MySQL以外,PostgreSQL、Redis、MongoDB和HBase等也开始活跃起来,PG的领军人物德哥、MongoDB的TJ、Redis的鹏程、HBase的曹龙等人也活跃在各大数据库大会和社群中,一起寻找着中国数据库新的方向。另外阿里云的Redis、国产数据库巨杉也纷纷开出自己的源代码,加入了开源数据库大军。


新的挑战,总在前方。

 

行业变局,新的挑战


2008年1月16日,Sun宣布已经与MySQL AB达成收购协议,以大约10亿美元收购MySQL AB。Sun给MySQL AB设定的商业路径是:扩大用户与开发人员社区,然后再创建商业服务吸引付费用户。但MySQL之父Monty并没有加入Sun,而是离职创立了Monty Program AB,接过MySQL的代码继续开发新的分支—MariaDB。

 

MySQL创始人Monty(左一)和MariaDB Foundation


历史往往是螳螂捕蝉黄雀在后,Sun还没来得及施展自己在MySQL上的抱负,自己就陷入了困境的泥潭,持续下滑的业绩,让Sun曾经在一天之内股价下跌近23%,市值从2000亿美金迅速滑落。


最终,Sun被Oracle收购,而MySQL也落入Oracle口袋。这一次收购,带给数据库行业的影响是巨大的,事实上的垄断形成了(虽然还有微软的SQLserver,IBM的DB2等)。越来越多的人担心,MySQL会逐步变成一个类商业的软件。而据传闻,MySQL 8.0 的授权协议,将变得比现在更加苛刻。


2013年,棱镜门事件曝光,潜伏在公众视野以外的国产数据库逐一出现,达梦、金仓、神通、南大等一批国产数据库得到了广泛关注,但这些数据库多应用于央企,国家财政,军事等专用领域。而在通用领域,完全不属于任何组织的开源数据库与自研数据库将是未来的主流,这也是MariaDB得到广泛关注的原因,阿里、腾讯都先后赞助了MariaDB。 


云数据库,更加亮眼的未来


2015年的AWS re:Invent大会上,亚马逊宣布了Amazon Aurora。Aurora是一个关系型数据库,可以跨3个可用区域复制6份数据,其设计目标是提供高性能和高可用性(99.99%)。


在中国,笔者猜测未来最有可能推出自研通用型数据库也将来自云计算厂商,数据库上云以后,很多玩法才刚刚开始,Cloud Native的数据库,将提供一个更有想象力的未来。而在国内,当今云计算产品线最全的就是阿里云了,目前也有其自研的金融数据库产品OceanBase。同时还在自行研发一款通用数据库——极地DB,据说在通用场景下性能可以达到MySQL的数倍,而成本只有MySQL的一半左右,下面是大会根据几位大牛的信息还原的架构图,应该跟Aurora原理类似。


 

有分析师认为到2020年人类产生的数据总和将达到100ZB,而随着大数据,人工智能,物联网的崛起,未来的数据库形态将越来越丰富,关系型数据库、非关系型数据库、结构数据库、时序数据库等将得到越来越广泛的应用,在不远的将来,以云为基础的云数据库将越来越多的影响人们的生活。

 

中国的数据库历史,伴随着时代的发展,故事仍然在继续。


无论你是在淘宝下单,还是在刷朋友圈,乃至你的流量费用、你的银行卡账单,背后都有这篇文章里,提到或者没有提到的人们做出的贡献。所以,笔者提议,在本文的最后,我们一起向所有为中国数据库行业发展做出贡献的先驱与从业者们致敬。


 

这个世界,因为这些有梦想与好奇心的人们,变得更好了。


 

所以

再不行动

梦想永远只是“梦”和“想”

来吧,一起把握住机会!

Gdevops 全球敏捷运维峰会·北京站

分享企业与嘉宾

58到家高级技术总监  |||   京东金融运维负责人

当当网架构总监  |||  饿了么技术总监 

前亚马逊中国区SDM  |||  新炬网络执行副总裁 

青岛航空高级架构师  |||  爱钱进DBA团队负责人

京东资深架构师  |||  滴滴出行云架构师

 阿里云数据库开发负责人 |||  更多大咖在路上


峰会限时免费ing

扫码或点击文末【阅读原文】即可报名

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存